package com.xxg.renrenorder.service;

import com.xxg.renrencommon.domain.result.BaseResult;
import com.xxg.renrencommon.exception.OrderManagerException;
import com.xxg.renrenorder.domain.query.ModQuery;
import com.xxg.renrenorder.domain.result.ReFundResult;

import java.util.Map;

/**
 * 类说明
 *
 * @author szj
 * @date 2021/12/14
 */
public interface PayService {
    /**
     * 微信支付
     *
     * @param orderIdStr  订单id字符串
     * @param paymentType 支付类型
     * @param openId      openid
     * @return 小程序支付信息
     */
    BaseResult<Map<String, String>> wechatpayOrder(String orderIdStr, int paymentType, String openId);

    /**
     * 异步支付通知信息处理-微信小程序
     *
     * @param notifyStr 支付通知参数
     */
    String lpWechatpayNotify(String notifyStr);

    /**
     * 异步退款通知信息处理-微信小程序
     *
     * @param toString 退款结果通知
     * @return 结果
     */
    String lpWechatRefundNotify(String toString);

    /**
     * mod
     * @param query mod参数
     * @return BaseResult<Void>
     */
    BaseResult<Void> modPaySuccess(ModQuery query);

    /**
     * 退款
     *
     * @param afterSalesId 售后订单号
     * @return 退款信息
     * @throws OrderManagerException 异常信息
     */
    ReFundResult reFund(String afterSalesId) throws OrderManagerException;

    /**
     * 退款模拟
     *
     * @param afterSalesId 售后订单号
     * @return 退款信息
     * @throws OrderManagerException 异常信息
     */
    ReFundResult reFundMock(String afterSalesId) throws OrderManagerException;
}
